802c9f04: 27 bd ff c8  ADDIU sp, sp, 0xffffffc8 (-56)
802c9f08: af bf 00 1c  SW ra, sp, 0x1c (28)
802c9f0c: af a4 00 38  SW a0, sp, 0x38 (56)                    [sp + 0x38] === arg1
802c9f10: af b0 00 18  SW s0, sp, 0x18 (24)

802c9f14: 8f ae 00 38  LW t6, sp, 0x38 (56)
802c9f18: af ae 00 28  SW t6, sp, 0x28 (40)                [sp + 0x28] = arg1;

802c9f1c: 8f af 00 38  LW t7, sp, 0x38 (56)
802c9f20: 8d f8 00 00  LW t8, t7, 0x0 (0)
802c9f24: 00 18 ce 02  SRL t9, t8, 0x18 (24)
802c9f28: 17 20 00 07  BNE t9, r0, 0x802c9f48 (pc + 0x1c)  if (*arg1 >> 24 != 0) goto 0x802c9f48;
802c9f2c: 00 00 00 00  NOP

802c9f30: 8f a8 00 38  LW t0, sp, 0x38 (56)
802c9f34: 8d 09 00 00  LW t1, t0, 0x0 (0)
802c9f38: 00 09 54 02  SRL t2, t1, 0x10 (16)
802c9f3c: 31 4b ff ff  ANDI t3, t2, 0xffff (65535)
802c9f40: 10 00 00 03  BEQ r0, r0, 0x802c9f50 (pc + 0xc)   [sp + 0x34] = (*arg1 >> 16) & 0xffff;
802c9f44: af ab 00 34  SW t3, sp, 0x34 (52)                goto 0x802c9f50;

*
802c9f48: 24 0c 00 08  ADDIU t4, r0, 0x8 (8)
802c9f4c: af ac 00 34  SW t4, sp, 0x34 (52)                [sp + 0x34] = 8;

*
802c9f50: 8f ad 00 34  LW t5, sp, 0x34 (52)
802c9f54: 3c 0f 80 36  LUI t7, 0x8036 (32822)
802c9f58: 8d ef 10 e8  LW t7, t7, 0x10e8 (4328)
802c9f5c: 00 0d 70 80  SLL t6, t5, 0x2 (2)                     t6 = t5 * 4
802c9f60: 01 cd 70 23  SUBU t6, t6, t5                         t6 = t5 * 3
802c9f64: 00 0e 70 80  SLL t6, t6, 0x2 (2)                     t6 = t5 * 12
802c9f68: 01 cd 70 21  ADDU t6, t6, t5                         t6 = t5 * 13
802c9f6c: 00 0e 70 c0  SLL t6, t6, 0x3 (3)                     t6 = t5 * 104
802c9f70: 01 cf c0 21  ADDU t8, t6, t7                         t8 = [sp + 0x34] * 104 + 0x803610e8
802c9f74: af b8 00 2c  SW t8, sp, 0x2c (44)                [sp + 0x2c] = &(0x803610e8[[sp + 0x34]]);

802c9f78: 0c 0b 27 00  JAL 0x802c9c00 (-2144560128)        [sp + 0x30] = 0x802c9c00([sp + 0x2c]);
802c9f7c: 8f a4 00 2c  LW a0, sp, 0x2c (44)
802c9f80: af a2 00 30  SW v0, sp, 0x30 (48)

802c9f84: 8f b9 00 38  LW t9, sp, 0x38 (56)
802c9f88: 8f a8 00 30  LW t0, sp, 0x30 (48)
802c9f8c: ad 19 01 cc  SW t9, t0, 0x1cc (460)              [sp + 0x30]->off0x1cc = arg1;

802c9f90: 8f a9 00 28  LW t1, sp, 0x28 (40)
802c9f94: 8f aa 00 30  LW t2, sp, 0x30 (48)
802c9f98: ad 49 02 0c  SW t1, t2, 0x20c (524)              [sp + 0x30]->off0x1cc = [sp + 0x28];

802c9f9c: 8f ab 00 34  LW t3, sp, 0x34 (52)
802c9fa0: 24 01 00 0c  ADDIU at, r0, 0xc (12)
802c9fa4: 15 61 00 05  BNE t3, at, 0x802c9fbc (pc + 0x14)  if ([sp + 0x34] != 0xc) goto 0x802c9fbc;
802c9fa8: 00 00 00 00  NOP

802c9fac: 8f ac 00 30  LW t4, sp, 0x30 (48)
802c9fb0: 85 8d 00 74  LH t5, t4, 0x74 (116)
802c9fb4: 35 ae 00 10  ORI t6, t5, 0x10 (16)
802c9fb8: a5 8e 00 74  SH t6, t4, 0x74 (116)               [sp + 0x30]->off0x74 |= 0x10;

*
802c9fbc: 8f b0 00 34  LW s0, sp, 0x34 (52)
802c9fc0: 24 01 00 04  ADDIU at, r0, 0x4 (4)
802c9fc4: 12 01 00 09  BEQ at, s0, 0x802c9fec (pc + 0x24)
802c9fc8: 00 00 00 00  NOP
802c9fcc: 24 01 00 05  ADDIU at, r0, 0x5 (5)
802c9fd0: 12 01 00 06  BEQ at, s0, 0x802c9fec (pc + 0x18)
802c9fd4: 00 00 00 00  NOP
802c9fd8: 24 01 00 0a  ADDIU at, r0, 0xa (10)
802c9fdc: 12 01 00 03  BEQ at, s0, 0x802c9fec (pc + 0xc)
802c9fe0: 00 00 00 00  NOP                                 if ([sp + 0x34] == 0x4 || [sp + 0x34] == 0x5 || [sp + 0x34] == 0xa) goto 0x802c9fec;

802c9fe4: 10 00 00 05  BEQ r0, r0, 0x802c9ffc (pc + 0x14)  goto 0x802c9ffc;
802c9fe8: 00 00 00 00  NOP

* (***)
802c9fec: 0c 0b 27 97  JAL 0x802c9e5c (-2144559524)        0x802c9e5c([sp + 0x30]);
802c9ff0: 8f a4 00 30  LW a0, sp, 0x30 (48)

802c9ff4: 10 00 00 03  BEQ r0, r0, 0x802ca004 (pc + 0xc)   goto 0x802ca004;
802c9ff8: 00 00 00 00  NOP

*
802c9ffc: 10 00 00 01  BEQ r0, r0, 0x802ca004 (pc + 0x4)   goto 0x802ca004;
802ca000: 00 00 00 00  NOP

**
802ca004: 10 00 00 03  BEQ r0, r0, 0x802ca014 (pc + 0xc)   return [sp + 0x30];
802ca008: 8f a2 00 30  LW v0, sp, 0x30 (48)
802ca00c: 10 00 00 01  BEQ r0, r0, 0x802ca014 (pc + 0x4)
802ca010: 00 00 00 00  NOP
802ca014: 8f bf 00 1c  LW ra, sp, 0x1c (28)
802ca018: 8f b0 00 18  LW s0, sp, 0x18 (24)
802ca01c: 27 bd 00 38  ADDIU sp, sp, 0x38 (56)
802ca020: 03 e0 00 08  JR ra
802ca024: 00 00 00 00  NOP

[sp + 0x28] = arg1;
if (*arg1 >> 24 != 0) goto 0x802c9f48;
[sp + 0x34] = (*arg1 >> 16) & 0xffff;
goto 0x802c9f50;
802c9f48:
[sp + 0x34] = 8;
802c9f50:
[sp + 0x2c] = &(0x803610e8[[sp + 0x34]]);
[sp + 0x30] = 0x802c9c00([sp + 0x2c]);
[sp + 0x30]->off0x1cc = arg1;
[sp + 0x30]->off0x1cc = [sp + 0x28];
if ([sp + 0x34] != 0xc) goto 0x802c9fbc;
[sp + 0x30]->off0x74 |= 0x10;
802c9fbc:
if ([sp + 0x34] == 0x4 || [sp + 0x34] == 0x5 || [sp + 0x34] == 0xa) goto 0x802c9fec;
goto 0x802c9ffc;
802c9fec:
0x802c9e5c([sp + 0x30]);
goto 0x802ca004;
802c9ffc:
goto 0x802ca004;
802ca004:
return [sp + 0x30];





[sp + 0x28] = arg1;

if (*arg1 >> 24 == 0) {
    [sp + 0x34] = (*arg1 >> 16) & 0xffff;
} else {
    [sp + 0x34] = 8;
}

[sp + 0x2c] = &(0x803610e8[[sp + 0x34]]);
[sp + 0x30] = 0x802c9c00([sp + 0x2c]);
[sp + 0x30]->off0x1cc = arg1;
[sp + 0x30]->off0x1cc = [sp + 0x28];

if ([sp + 0x34] == 0xc) {
    [sp + 0x30]->off0x74 |= 0x10;
}

if ([sp + 0x34] == 0x4 || [sp + 0x34] == 0x5 || [sp + 0x34] == 0xa) {
    0x802c9e5c([sp + 0x30]);
}
802ca004:
return [sp + 0x30];
